﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windows.UI.Xaml;
using 纸片人.CalculateControls;
using 纸片人.win2dEffectControl;
using 纸片人.win2dEffectControl.DataClass;

namespace 纸片人.InterfaceFolder
{
    public delegate void ProviderChangedHeader();

    public interface IProvider:IExporter
    {

        /// <summary>
        /// 输出的连接线列表,里面包含了接收者
        /// </summary>
        List<ConnectLineUIElement> ListProvideroneConnectElement { get; set; }


        /// <summary>
        /// 
        /// </summary>
        /// <param name="newConnectLine"></param>
        void AddProvideroneConnectElement(ConnectLineUIElement newConnectLine);


        /// <summary>
        /// 
        /// </summary>
        /// <param name="newConnectLine"></param>
        void RemoveProvideroneConnectElement(ConnectLineUIElement newConnectLine);



        /// <summary>
        /// 移除输出者（不同的类有不同的移除方法），需要重新
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        void RemoveExport(ConnectLineUIElement connectElement);

        /// <summary>
        /// 创建连接
        /// </summary>
        /// <param name="inputControl">输出的控件</param>
        /// <param name="connectLineUIElement">连接控件信息</param>
        /// <param name="ementDrag">被拖拽的控件</param>
        /// <param name="data">数据</param>
        void CreateConnect( ref ConnectLineUIElement connectLineUIElement, ProviderDropControl ementDrag);

        /// <summary>
        /// 删除所有输出者
        /// </summary>
        /// <param name="data"></param>
        void RemoveAllExport();

        /// <summary>
        /// 检测是否是图标循环
        /// </summary>
        /// <returns></returns>
        bool IsChartLoop(IExporter exporter);


    }
}
